#pragma once
#include "AIS_TexturedShape.hxx"

class AIS_MyGrid;
DEFINE_STANDARD_HANDLE(AIS_MyGrid, AIS_InteractiveObject)


class AIS_MyGrid :
	public AIS_InteractiveObject
{
public:
	AIS_MyGrid(const Standard_Real& wndWidth, const Standard_Real& wndHeight,
		const Standard_Real& viewWidth, const Standard_Real& viewHeight);

	~AIS_MyGrid(){}

	void SetParams(const Standard_Real& wndWidth, const Standard_Real& wndHeight,
		const Standard_Real& viewWidth, const Standard_Real& viewHeight);

	void SetWindowSize(const Standard_Real& wndWidth, const Standard_Real& wndHeight);

	void SetViewSize(const Standard_Real& viewWidth, const Standard_Real& viewHeight);

	DEFINE_STANDARD_RTTIEXT(AIS_MyGrid, AIS_InteractiveObject)

	virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0);
	void ComputeSelection(const Handle(SelectMgr_Selection)&, const Standard_Integer) {}
protected:

	TCollection_AsciiString ToIndicatorText(Standard_Real indicator);

	Standard_Real ViewGridSize(unsigned minWCellSize, unsigned maxWCellSize, Standard_Real wvScale);

	Standard_Real myWndWidth;
	Standard_Real myWndHeight;
	Standard_Real myViewWidth;
	Standard_Real myViewHeight;
};

